# 定义用户默认的数据
user_list = [{'role':'admin','account':'admin','password':'123456','dept':'test'},{'account':'test','password':'123456','role':'user','dept':'test'}]



# 定义默认发返回结果
result = {'code':0,'message':''}


# 定义登录函数
def login(username,password):

    # 1. 如果用户名为空或密码为空 ，给出用户名为空或密码为空
    if username is None or username == '':
        result.update({'code':1,'message':'用户名不能为空！'})
        return result
    if password is None or password == '':
        result.update({'code':2,'message':'密码不能为空！'})
        return result
    # 2. 用户名或密码不存在 ，给出用户名或密码错误

    # 3. 用户名和密码是否匹配 。
    for user_data in user_list:
        if username == user_data.get('account') and password == user_data.get('password'):
            result.update({'code':0,'message':'登录成功','user_list':user_list})
            return result

    # 不匹配的情况，请检查您的用户名或密码是否填写正确
    result.update({'code':3,'message':'登录失败，请检查用户名或密码是否填写正确！'})
    return result


##用户查询功能
def get_user(username):

    #1.判断用户名是否登录，若登录可运行下面代码；若未登录，返回权限失败
    if  result.get('code') != 0 :
        result.update({"code":11,"message":"用户未登录，无法查询出结果"})
        return result

   #2.若输入用户名正确进行查询，并且返回结果（支持模糊查询）
    lst = []
    for  x  in user_list:
         account = x.get('account')
         if  username in account:
             x.pop('password')           #删除键所对应的键值对
             lst.append(x)

    #3.判断lst里是否有数据，若列表不为空，返回查询成功
    if lst:
        result.update({"code":10,"message":"查询用户成功","user_list":list})
        return   result

    #4. 若输入的用户名不正确，则返回无查询结果
    result.update({"code":12,"message":"未查询到用户，请重新输入用户名！"})
    return  result

if __name__ == '__main__':
    flag = True

    while flag:
        #输入不同数字代表不同的操作
        vls  = input("请不同的编号进行操作："
              "\n 1) 进行登录"
              "\n 2) 进行用户查询，请输入用户名"
              "\n 3(q(uit) 退出操作"
              "\n 其他字符) 未知操作，请重新输入")

        if  vls not in('q','1','2','quit'):
            print("=" * 20)
            continue

        if vls  == '1':
            username = input("请输入用户名:")
            password = input("请输入密码:")
            login_result = login(username, password)
            print(login_result)
            print("=" * 20)
            continue

        if vls =='2':
            name = input("请输入要查询的用户名：")
            get_result = get_user(name)
            print(get_result)
            print("=" * 20)
            continue

        if vls in ('q','quit'):
            flag = False
            print("退出成功！")
            print("=" * 20)